using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using NEXEntidad;
using NEXServicio;

namespace A_CargaBiblioteca
{
    public partial class frmAutorGrilla : Form
    {
        #region Constructores
        public frmAutorGrilla()
        {
            InitializeComponent();
        }
        #endregion

        #region Eventos de Pantalla
        private void frmAutorGrilla_Load(object sender, EventArgs e)
        {
            try
            {
                this.pie1.Descripcion = "Editar / Borrar - Autor";
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                this.Cursor = Cursors.WaitCursor;
                this.cargarGrilla();
                this.Cursor = Cursors.Default;
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            frmAutorDet form = new frmAutorDet();
            form.ModoFormulario = Utilidad.ModoFormulario.Nuevo;
            form.ShowDialog();
        }

        private void dgLibros_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            try
            {

                seleccionarFila(e.RowIndex);
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }

        private void dgAutor_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                seleccionarFila(e.RowIndex);
            }
            catch (Exception ex)
            {

                throw ex;
            }

        }
        private void toolmenuBorrar_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgAutor.SelectedRows.Count > 0)
                {
                    int idAutor =Convert.ToInt32(dgAutor.SelectedRows[0].Cells[0].Value);
                    Autor unAutor = new Autor(idAutor);
                    if (unAutor.Eliminar())
                        this.cargarGrilla();
                }
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }
        #endregion

        #region Metodos privados

        private void cargarGrilla()
        {
            try
            {
                AutorCollection listaAutores = new AutorCollection();
                listaAutores = NEXEntidad.Autor.Listar(txtNombre.Text);

                dgAutor.AutoGenerateColumns = false;
                dgAutor.DataSource = listaAutores;

                dgAutor.Columns["IdAutor"].DataPropertyName = "Id";
                dgAutor.Columns["Apellido"].DataPropertyName = "Apellido";
                dgAutor.Columns["Nombre"].DataPropertyName = "Nombre";
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }

        private void seleccionarFila(int fila)
        {
            try
            {
                this.Cursor = Cursors.WaitCursor;
                int idAutor = Convert.ToInt32(dgAutor.Rows[fila].Cells["IdAutor"].Value);
                if (idAutor != 0)
                {
                    Autor autor = new Autor(idAutor);
                    autor.LlamarAObtener();
                    frmAutorDet form = new frmAutorDet();
                    form.Objeto = autor;
                    form.ModoFormulario = Utilidad.ModoFormulario.Edicion;
                    //form.inicializar();
                    this.Cursor = Cursors.Default;
                    if (form.ShowDialog() == DialogResult.OK)
                    {
                        dgAutor.DataSource = null;
                        dgAutor.Rows.Clear();
                    }
                }
                else
                {
                    MessageBox.Show("Selecciona un autor para seleccionar");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        #endregion

    }
}